/**
 * Created by yang on 2017/2/17.
 */
function myAjax(option) {
   let mydefaultConfig={
        emulateHTTP:true,
        emulateJSON:true,
          body:{},
          param:{}
   }
  let url = option.url;
  let method =option.method;
  switch (true) {

    // 登录时 不需要带token
    case  url === "/login.do":
      break;

    case method === "get":
      option.params = option.params || {};
      break;

    case method === "post":
      break;

    default:
      break;
  }
// 4. 合并请求参数
let targetObj = Object.assign({}, mydefaultConfig, option);

// 5. 发起ajax请求
this.$http(targetObj)
  .then(

    // 请求成功时
    response => {

      let data = response.data;

      if(data.message=='你还没登录!'){
        this.$router.push({path:"/login"});
        return;
      }
      switch (true){

        // // token 失效
        // case data.msg === "error.access.session.invalid" :
        //   store.commit(LOADER_SET_AJAX_NUM, 0); // 清空请求数
        //   window.location.hash = "/login";
        //   break;
        //
        // // 请求成功 数据可能不合理
        // // 针对登录 错误特殊处理
        // case data.success === false && url !== "/login.do":
        //   //console.log(`${url} 有问题找后台`);
        //
        //   // 已经有请求报错
        //   // 表示不需要再更新showError 且请求数 -1
        //   if(loaderState.showError) {
        //     store.commit(LOADER_SET_AJAX_NUM, -1);
        //
        //   }else {
        //     // 否则就是 更新showError 且 需要手动将请求数 -1
        //     store.commit(LOADER_ERROR_SHOWHide, true);
        //   }
        //   break;

        // 请求成功 数据也合理
        default:
          targetObj.success(data);
          // store.commit(LOADER_SET_AJAX_NUM, -1);
          // 只有所有请求都完毕时 才取消loading
          // !loaderState.ajaxNum && store.commit(LOADER_SHOWHide, false);
          break;
      }
    },

    // 请求失败时
    () => {
      return //console.log('请求失败');
      // return store.commit(LOADER_ERROR_SHOWHide, true)
    }
  )


}
function getAjax(url,data,fn){
  let newOption={url:myUrl+url,method:'get',params:data,success:fn};
    this.myAjax(newOption)

}
function postAjax(url,data,fn) {
  let newOption={url:myUrl+url,method:'post',body:data,success:fn};
  this.myAjax(newOption)
}
export default {
  myAjax,
  getAjax,
  postAjax
};
